跳到主要内容

Whisper 使用命令说明

MacOS 上使用 OpenAI Whisper 的详细教程


1. 环境准备

1.1 安装 Homebrew

Homebrew 是 macOS 常用的软件包管理器。如果尚未安装,可以通过以下命令安装:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装完成后,运行以下命令确保 Homebrew 正常工作:

brew update
brew doctor

1.2 安装 Python

Whisper 需要 Python 环境,建议使用 Python 3.8 或更高版本。可以通过 Homebrew 安装:

brew install python

安装完成后,检查 Python 版本:

python3 --version

如果版本号是 3.8 或更高,则可以继续。


2. 安装 Whisper

2.1 安装 pip 和 virtualenv

确保 pip 已安装,并安装 virtualenv 来创建隔离的 Python 环境:

python3 -m ensurepip --upgrade
pip3 install virtualenv

2.2 创建虚拟环境

在项目文件夹中创建一个虚拟环境:

mkdir whisper_project
cd whisper_project
python3 -m virtualenv venv
source venv/bin/activate

激活虚拟环境后,你会看到命令行前面有 (venv) 的标记。

2.3 安装依赖

Whisper 依赖 PyTorch 和 ffmpeg。使用以下命令安装:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
pip install git+https://github.com/openai/whisper.git

如果你的系统支持 GPU,可以安装 GPU 版本的 PyTorch,具体安装方法可以参考 PyTorch 官网


3. 安装 ffmpeg

Whisper 需要 ffmpeg 来处理音频文件。可以通过 Homebrew 安装:

brew install ffmpeg

安装完成后,验证 ffmpeg 是否正常工作:

ffmpeg -version

4. 使用 Whisper

4.1 下载音频文件

准备好需要转换的音频文件,确保文件格式为 .mp3, .wav 或其他常见音频格式。

4.2 转换音频为文本

运行以下命令使用 Whisper 将音频转换为文本:

whisper example.mp3 --model small

其中:

  • example.mp3 是音频文件的路径。
  • --model 指定使用的模型大小(可选值:tiny, base, small, medium, large)。模型越大,精度越高,但运行速度越慢。

4.3 指定语言

如果音频文件是非英语语言,可以通过 --language 参数指定语言。例如:

whisper example.mp3 --model small --language zh

5. 高级使用

5.1 转换为字幕文件

可以生成字幕文件(如 .srt.vtt):

whisper example.mp3 --model small --output_format srt

5.2 批量处理

如果有多个音频文件,可以通过批量处理脚本来转换:

for file in *.mp3; do
whisper "$file" --model small;
done

6. 性能优化

如果你的系统支持 GPU,可以安装 GPU 版本的 PyTorch,并使用以下命令启用 GPU 加速:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

运行 Whisper 时,它会自动检测并使用 GPU。


7. 常见问题

7.1 ffmpeg 未安装或未找到

确保 ffmpeg 已安装,并且路径正确。如果仍然报错,可以尝试重新安装:

brew reinstall ffmpeg

7.2 内存不足

如果模型过大,可能会导致内存不足。可以尝试使用较小的模型(如 tinybase)。


这样,你就可以在 macOS 上顺利使用 Whisper 进行语音识别了!如果有其他问题,请随时询问。